home *** CD-ROM | disk | FTP | other *** search
/ Graphics Plus / Graphics Plus.iso / general / fractal / kaos.lha / complib / lubksb.c < prev    next >
Encoding:
C/C++ Source or Header  |  1989-11-18  |  430 b   |  29 lines

  1. /*
  2. ### LU back substitution ###
  3.  
  4. Note: x[0...n-1] convention
  5. */
  6.  
  7. void lubksb(a,n,indx,b)
  8. double **a,b[];
  9. int n,indx[];
  10. {
  11.     int i,ii= -1,ip,j;
  12.     double sum;
  13.  
  14.     for(i=0;i<n;i++){
  15.         ip = indx[i];
  16.         sum = b[ip];
  17.         b[ip] = b[i];
  18.         if(ii >= 0)
  19.             for(j=ii;j<=i-1;j++) sum -= a[i][j] * b[j];
  20.         else if (sum) ii = i;
  21.         b[i] = sum;
  22.     }
  23.     for(i=n-1;i>=0;i--){
  24.         sum = b[i];
  25.         for(j=i+1;j<n;j++) sum -= a[i][j] * b[j];
  26.         b[i] = sum/a[i][i];
  27.     }
  28. }
  29.